home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / initrd.lz / initrd / scripts / casper-bottom / 19keyboard < prev    next >
Encoding:
Text File  |  2009-10-28  |  7.4 KB  |  196 lines

  1. #!/bin/sh
  2.  
  3. PREREQ=""
  4. DESCRIPTION="Setting up console keyboard..."
  5.  
  6. . /scripts/casper-functions
  7.  
  8. prereqs()
  9. {
  10.        echo "$PREREQ"
  11. }
  12.  
  13. case $1 in
  14. # get pre-requisites
  15. prereqs)
  16.        prereqs
  17.        exit 0
  18.        ;;
  19. esac
  20.  
  21. log_begin_msg "$DESCRIPTION"
  22.  
  23. kbd=us
  24. cslayout=
  25. csvariant=
  26. csmodel=
  27.  
  28. for x in $(cat /proc/cmdline); do
  29.         case $x in
  30.                 kbd-chooser/method=*)
  31.                         kbd=${x#kbd-chooser/method=}
  32.                         ;;
  33.                 console-setup/layoutcode=*)
  34.                         cslayout=${x#console-setup/layoutcode=}
  35.                         ;;
  36.                 console-setup/layoutcode\?=*)
  37.                         cslayout=${x#console-setup/layoutcode\?=}
  38.                         ;;
  39.                 console-setup/variantcode=*)
  40.                         csvariant=${x#console-setup/variantcode=}
  41.                         ;;
  42.                 console-setup/variantcode\?=*)
  43.                         csvariant=${x#console-setup/variantcode\?=}
  44.                         ;;
  45.                 console-setup/modelcode=*)
  46.                         csmodel=${x#console-setup/modelcode=}
  47.                         ;;
  48.                 console-setup/modelcode\?=*)
  49.                         csmodel=${x#console-setup/modelcode\?=}
  50.                         ;;
  51.         esac
  52. done
  53.  
  54. # TODO: This is a horrible clone-and-hack from console-setup. We should
  55. # definitely be calling console-setup instead; however, that's too risky for
  56. # 8.04 since it will need careful installer testing and will probably be
  57. # slower.
  58. adjust_console_setup () {
  59.         if [ -z "$csmodel" ]; then
  60.                 if [ "$cslayout" = br ]; then
  61.                         csmodel=abnt2
  62.                 elif [ "$cslayout" = jp ]; then
  63.                         csmodel=jp106
  64.                 fi
  65.         fi
  66.  
  67.         latin=
  68.         case $cslayout in
  69.                 jp)
  70.                         case $csvariant in
  71.                                 ''|106|common|OADG109A|nicola_f_bs)
  72.                                         latin=yes
  73.                                         ;;
  74.                                 *)
  75.                                         latin=no
  76.                                         cslayout=jp,jp
  77.                                         csvariant="106,$csvariant"
  78.                                         ;;
  79.                         esac
  80.                         ;;
  81.                 lt)
  82.                         latin=no
  83.                         cslayout=lt,lt
  84.                         case $csvariant in
  85.                                 us)
  86.                                         csvariant=us,
  87.                                         ;;
  88.                                 *)
  89.                                         csvariant="$csvariant,us"
  90.                                         ;;
  91.                         esac
  92.                         ;;
  93.                 me)
  94.                         case $csvariant in
  95.                                 ''|basic|latin*)
  96.                                         latin=yes
  97.                                         ;;
  98.                                 cyrillicyz)
  99.                                         latin=no
  100.                                         cslayout=me,me
  101.                                         csvariant="latinyz,$csvariant"
  102.                                         ;;
  103.                                 cyrillicalternatequotes)
  104.                                         latin=no
  105.                                         cslayout=me,me
  106.                                         csvariant="latinalternatequotes,$csvariant"
  107.                                         ;;
  108.                                 *)
  109.                                         latin=no
  110.                                         cslayout=me,me
  111.                                         csvariant="basic,$csvariant"
  112.                                         ;;
  113.                         esac
  114.                         ;;
  115.                 rs)
  116.                         case $csvariant in
  117.                                 ''|basic|latin*)
  118.                                         latin=yes
  119.                                         ;;
  120.                                 yz)
  121.                                         latin=no
  122.                                         cslayout=rs,rs
  123.                                         csvariant="latinyz,$csvariant"
  124.                                         ;;
  125.                                 alternatequotes)
  126.                                         latin=no
  127.                                         cslayout=rs,rs
  128.                                         csvariant="latinalternatequotes,$csvariant"
  129.                                         ;;
  130.                                 *)
  131.                                         latin=no
  132.                                         cslayout=rs,rs
  133.                                         csvariant="latin,$csvariant"
  134.                                         ;;
  135.                         esac
  136.                         ;;
  137.                 am|ara|ben|bd|bg|bt|by|deva|ge|gh|gr|guj|guru|il|in|ir|iku|kan|kh|la|lao|lk|mk|mm|mn|mv|mal|ori|pk|ru|scc|sy|syr|tel|th|tj|tam|ua|uz)
  138.                         latin=no
  139.                         cslayout="us,$cslayout"
  140.                         csvariant=",$csvariant"
  141.                         ;;
  142.                 *)
  143.                         latin=yes
  144.         esac
  145.  
  146.         if [ "$latin" = no ]; then
  147.                 csoptions="${csoptions:+$csoptions,}grp:alt_shift_toggle"
  148.         fi
  149.         if [ "$cslayout" != us ] || [ "$csvariant" ]; then
  150.                 csoptions="${csoptions:+$csoptions,}lv3:ralt_switch"
  151.         fi
  152. }
  153.  
  154. if [ -x /root/bin/setupcon ] && [ -f /root/etc/default/console-setup ]; then
  155.         if [ "$cslayout" ]; then
  156.                 csoptions=
  157.                 adjust_console_setup
  158.  
  159.                 chroot /root sed -i "s/^XKBLAYOUT=.*/XKBLAYOUT=\"$cslayout\"/" \
  160.                         /etc/default/console-setup
  161.                 if [ "$csvariant" ]; then
  162.                         chroot /root sed -i "s/^XKBVARIANT=.*/XKBVARIANT=\"$csvariant\"/" \
  163.                                 /etc/default/console-setup
  164.                 else
  165.                         casper-preseed /root console-setup/variantcode '' false
  166.                 fi
  167.                 if [ "$csmodel" ]; then
  168.                         chroot /root sed -i "s/^XKBMODEL=.*/XKBMODEL=\"$csmodel\"/" \
  169.                                 /etc/default/console-setup
  170.                 else
  171.                         casper-preseed /root console-setup/modelcode '' false
  172.                 fi
  173.                 if [ "$csoptions" ]; then
  174.                         chroot /root sed -i "s/^XKBOPTIONS=.*/XKBOPTIONS=\"$csoptions\"/" \
  175.                                 /etc/default/console-setup
  176.                 fi
  177.         else
  178.                 casper-preseed /root console-setup/layoutcode '' false
  179.                 casper-preseed /root console-setup/variantcode '' false
  180.                 casper-preseed /root console-setup/modelcode '' false
  181.         fi
  182.         casper-preseed /root console-setup/optionscode '' false
  183.         casper-preseed /root console-setup/codesetcode '' false
  184.  
  185.         if [ -f /root/etc/init.d/usplash ]; then
  186.                 sed -i 's/CONSOLE_SCREEN=$/CONSOLE_SCREEN=setupcon/; t END; b; : END; n; b END' /root/etc/init.d/usplash
  187.         elif [ -f /root/etc/init/usplash.conf ]; then
  188.                 sed -i '/^post-stop script/a\
  189.     setupcon' /root/etc/init/usplash.conf
  190.         fi
  191. else
  192.         chroot /root /usr/sbin/install-keymap $kbd
  193.         casper-preseed /root debian-installer/keymap "$kbd"
  194. fi
  195. log_end_msg
  196.